package com.xiashitech.agent.utils;

import com.xiashitech.agent.config.StartConfig;
import com.xiashitech.agent.constants.SpecialConfigString;
import com.xiashitech.interfaces.agent.dto.AgentConfigDTO;

import java.util.*;

public class XiashiGrpcUtil {
    public static boolean useGrpc() {
        // 按系统配置使用 GRPC 的需求不存在，配了 GRPC 参数，就都用 GRPC
        return StartConfig.isStartGrpc();
        /*
        // 如果 isStartGrpc 是 false，应该客户端的配置有问题，应该无法启用 grpc
        if(!StartConfig.isStartGrpc())
            return false;

        // 如下写法是避免在配置信息初始化之前被调用，引起 NPE 异常
        AgentConfigDTO cfg = AgentConfigDTO.getConfig();
        if(cfg == null) {
            if(StartConfig.isStartGrpc())
                return true;
            return false;
        }
        Map<String, String> map = cfg.getSystemAppCode();
        if(map == null || map.size() < 1)
            return false;
        String appCode  = map.get(SpecialConfigString.USEGRPC_SYSTEMID.getConfiString());
        if(appCode == null) {
            return false;
        }

        if(!appCode.isEmpty()) {
            String[] appCodeArray = appCode.split(",");
            boolean isUse = Arrays.stream(appCodeArray).anyMatch(item-> item.equalsIgnoreCase(StartConfig.getParamValueFromKey(StartConfig.systemId)));
            if (isUse) {
                return true;
            }
        }
        return false;
        */
    }
}
